package GrammarBasics;

/**
 * @author chihb
 * @create-time 2024/6/19 15:46
 * @description
 */

/**
 * 运算符
 */
public class OperatorDemo {
    public static void main(String[] args) {
        /**
         * 加：'+'   数值相加，字符连接
         * 减：'-'
         * 乘：'*'
         * 除：'/'   会向下取整，如5/2=2，  但是可以使用5.0/2=2.5
         * 取余：'%'
         */
        int a=1+1;
        String s="aa"+11;
        int c=10-9;
        int d=5/2;
        Double b=5.0/2;
        System.out.println(a);
        System.out.println(s);
        System.out.println(c);
        System.out.println(d);

        /**
         * 自增自减只能操作变量，不能操作字面量
         * 自增 ++
         * 自减 --
         * --,++在前面和后面使用是不一样的，--，++在后面是先赋值在计算，在前面是先计算在赋值
         */
        int f=10;
        f++;
        ++f;
        int i=55;
        i--;
        i++;

        /**
         * 赋值运算
         * +=
         * -=
         * *=
         * /=
         * %=
         */
        int p=20;
        p+=2;
        p-=2;
        p*=2;
        p/=2;
        p%=2;
        /**
         * 比较运算符  都是返回boolean
         * >
         * <
         * >=
         * <=
         * ==   比较地址，equals比较值
         * !=
         */
        System.out.println("懒得写");
        /**
         * 逻辑运算符
         * &  逻辑与   多个条件为真才为真   都要执行
         * |  逻辑或   有一个真为真        都要执行
         * ！ 逻辑非    真为假，假为真
         * ^  异或     相同为假，相反为真
         * &&  短路与   左边为false，右边不执行
         * ||  短路非   左边为true，右边不执行
         */

        /**
         * 三元运算符
         * 条件表达式？值1：值2；
         */
        int x=20;
        int y=30;
        int xy = x>y?x:y;
        System.out.println(xy);

        /**
         * 运算符优先级
         * 1.()
         * 2.!,-,++,--
         * 3.*,/,%
         * 4.自己去查
         * 5
         */
    }
}
